home *** CD-ROM | disk | FTP | other *** search
- ; Block stack macros
- ; ==================
- ;
- ; These macros provide a LIFO stack for cutting and pasteing onto.
- ; (c) 1992-3 J.Harper
-
- ; Setup stack counter -- set to unit 1 so 0 can be used for normal copying.
- (global `_stkct' 1)
-
- ; Copies text to stack buffer.
- ; (stkcopy `sectionType')
- (macro `stkcopy'
- {
- (local `sect' (arg 1 `s' `section> '))
- (copy sect _stkct)
- (= `_stkct' (+ _stkct 1))
- (return 1)
- })
-
- ; Cuts text to stack buffer.
- ; (stkcut `sectionType')
- (macro `stkcut'
- {
- (local `sect' (arg 1 `s' `section> '))
- (cut sect _stkct)
- (= `_stkct' (+ _stkct 1))
- (return 1)
- })
-
- ; Inserts text from stack buffer.
- ; (stkins)
- (macro `stkins'
- {
- (if (> _stkct 1) ; Is anything on the stack?
- {
- (= `_stkct' (- _stkct 1)) ; Decrement counter
- (insert `cb' _stkct) ; Insert from clipboard
- (return 1)
- }
- {
- (settitle `Nothing on block stack.')
- (return 0)
- })
- })
-